/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Pesistencia;

import BancoDados.BancoDados;
import Entidade.ItemCompraModel;
import Entidade.ProdutoModel;
import java.sql.ResultSet;
import java.util.ArrayList;

/**
 *
 * @author Thalyta
 */
public class ItemCompraPersistencia {
    BancoDados bd;
     private BancoDados banco = new BancoDados();
     EnderencoPersistencia endrecos ;
     ProdutoPersistencia produtos;

    public ItemCompraPersistencia(EnderencoPersistencia endrecos) {
        bd = new BancoDados();
        this.endrecos = endrecos;
    }
          
  public ArrayList<ItemCompraModel> getListaProdutos() {
      
      
        try {
            ResultSet rs = bd
                    .consultar("SELECT * FROM itemCompra");
            ArrayList<ItemCompraModel> retorno = new ArrayList<>();
            while(rs.next()){
                
                 ProdutoModel produto = produtos.buscar(rs.getInt("codProduto"));
                 ItemCompraModel p = new ItemCompraModel( rs.getInt("CodCompra"),produto.getCodigo(),rs.getDouble("valor"),rs.getInt("quantidade"));
                        
                 retorno.add(p);
            }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

   public double total() {
      
    double total = 0 ;  
        try {
            ResultSet rs = bd
                    .consultar("SELECT * FROM itemCompra");
            ArrayList<ItemCompraModel> retorno = new ArrayList<>();
            while(rs.next()){
                
                 ItemCompraModel p = new ItemCompraModel( rs.getInt("CodCompra"),rs.getInt("codProduto"),rs.getDouble("valor"),rs.getInt("quantidade"));           
                 retorno.add(p);
                total = total + p.getValor();
            }
            return total;
        } catch (Exception e) {
            e.printStackTrace();
            return total;
        }
    }

    public ItemCompraPersistencia(BancoDados bd) {
        this.bd = bd;
    }

    public void cadastrar( ItemCompraModel ItemVenda) {
        try {
            bd.atualizar("INSERT INTO itemCompra (codCompra,codProduto ,valor ,quantidade)  VALUES ("+ItemVenda.getCompra()+" ,"+ItemVenda.getProduto()+" ,"+ItemVenda.getValor()+" ,"+ItemVenda.getQuant()+")");
           System.out.println("INSERT INTO itemCompra (codCompra,codProduto ,valor ,quantidade)  VALUES ("+ItemVenda.getCompra()+" ,"+ItemVenda.getProduto()+" ,"+ItemVenda.getValor()+" ,"+ItemVenda.getQuant()+")");
          
       } catch (Exception e) {
            System.out.println("ERRO");
            e.printStackTrace();
        }
        
    }

    public  ItemCompraModel buscar(int codigo) {
        try {
            ResultSet rs = bd.consultar("SELECT * FROM itemCompra WHERE codProduto = "+codigo);
            rs.next();
             ItemCompraModel retorno;
            if(rs.getRow() == 0){
                retorno = null;
            } else {
                retorno = new  ItemCompraModel(rs.getInt("CodCompra"), rs.getInt("codProduto"),rs.getDouble("valor"),rs.getInt("quantidade"));
                 }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }   

    public int recuperarUltimoCodigo() {
        try {
            ResultSet rs = bd.consultar("SELECT MAX(CodProduto) FROM itemCompra");
            rs.next();
            int retorno;
            if(rs.getRow() == 0){
                retorno = 0;
            } else {
                retorno = rs.getInt("MAX(CodProduto)");
            }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return -1;
        }
    }

    public void excluir(ItemCompraModel itemCompra) {
        try {
            bd.atualizar("DELETE FROM itemCompra WHERE (codProduto = "+itemCompra.getProduto()+")");

            System.out.println("DELETE FROM itemCompra WHERE (codProduto = "+itemCompra.getProduto()+")");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
